An unmanned aerial vehicle (UAV) may have a one or more processors to control flight of the unmanned aerial vehicle along a predefined flight path, also referred to as flight controller. The flight path may be provided for example by manual remote control, waypoint control, target tracking, etc. Further, an obstacle detection and avoidance system may be implemented to avoid collision of the unmanned aerial vehicle with an obstacle located in the flight path of the unmanned aerial vehicle. As an example, an unmanned aerial vehicle with obstacle detection may be configured to stop in front of a solid object, as for example, a wall, a tree, a pillar, etc., and thus avoiding a collision.